/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.mtc.dgac.licencias.controller;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import pe.gov.mtc.dgac.licencias.bean.ProcesoTO;
import pe.gov.mtc.dgac.licencias.bean.TipoProcesoTO;
import pe.gov.mtc.dgac.licencias.exception.TransactionException;
import pe.gov.mtc.dgac.licencias.service.ProcesoService;

/**
 *
 * @author elvis
 */
@Controller
@Scope("session")
public class ProcesosController {

    @Autowired
    private ProcesoService procesoService;
    
    @RequestMapping("/calidad/lprocesos.htm")
    public String lprocesos(HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/lprocesos");
        List<ProcesoTO> lprocesos = new ArrayList<ProcesoTO>();
        try {
            lprocesos = procesoService.listarProcesos(new ProcesoTO());
        } catch (TransactionException ex) {
            ex.printStackTrace();
        }   
        model.put("lprocesos", lprocesos);
        model.put("bproceso", new ProcesoTO());
        return "calidad/lprocesos";
    }
    
    @RequestMapping( value="/calidad/bprocesos.htm",method=RequestMethod.POST)
    public String bprocesos(@Valid ProcesoTO bproceso, BindingResult result, HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/bprocesos");
        List<ProcesoTO> lprocesos = new ArrayList<ProcesoTO>();
        try {
            lprocesos = procesoService.listarProcesos(bproceso);
        } catch (TransactionException ex) {
            ex.printStackTrace();
        }   
        model.put("lprocesos", lprocesos);
        model.put("bproceso", bproceso);
        return "calidad/lprocesos";
    }
    
    @RequestMapping("/calidad/nproceso.htm")
    public String nproceso(HttpServletRequest request, ModelMap model) {
        ProcesoTO proceso = new ProcesoTO();
        proceso.setTipoProcesoTO(new TipoProcesoTO());
        model.put("nproceso", proceso);
        System.out.println("calidad/nproceso");
        return "calidad/nproceso";
    }

    @RequestMapping(value="/calidad/rproceso.htm",method=RequestMethod.POST)
    public String rproceso(@Valid ProcesoTO nproceso, BindingResult result, ModelMap model,HttpServletRequest request) {
        try {
            procesoService.insertarProceso(nproceso);
        } catch (TransactionException ex) {
            ex.printStackTrace();
        }
        return lprocesos(request, model);
    }
    

    @RequestMapping("/calidad/editProceso.htm")
    public String editProceso(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/nprocesos");
        ProcesoTO proceso = new ProcesoTO();
        proceso.setTipoProcesoTO(new TipoProcesoTO());
        model.put("nproceso", proceso);        
        return "calidad/nproceso";
    }
    //
    @RequestMapping("/calidad/verProceso.htm")
    public String verProceso(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/nprocesos");
        ProcesoTO proceso = new ProcesoTO();
        proceso.setTipoProcesoTO(new TipoProcesoTO());
        model.put("dproceso", proceso);        
        return "calidad/dproceso";
    }
    //
    @RequestMapping("/calidad/delProceso.htm")
    public String delProceso(@RequestParam("codigo") int id,HttpServletRequest request,ModelMap model) {
        System.out.println("calidad/nprocesos");
        model.put("mensaje", "elemento eliminado");
        return "calidad/lprocesos";
    }
}

